#ifndef __edaMoveSelect_h__
#define __edaMoveSelect_h__

#include "edaSerialize.h"
#include "edaMove.h"
#include "edaDefine.h"

/*
   class edaEmptySelectionException : public edaException {
   };
*/

class edaMoveSelect : public edaSerialize
{
  public:
    virtual ~edaMoveSelect() {};
    virtual edaMoveSelect* clone() const = 0;
    virtual void init(double fitness) = 0;
    virtual bool update(const edaMove *move, double fit) = 0;
    virtual bool save(edaMove *move, double &fit) const = 0;
    virtual void Serialize(edaBuffer &buf, bool pack) = 0;

    setClassID(_SYSCLASSID_ + _CLSID_EDAMOVESELECT_);
};

#endif
